package com.software.comment.service;



import com.software.comment.pojo.Comment;

import java.util.List;

/**
 * @author 周昊
 * @since 2024/12/16 11：34
 * @version 1.0
 */
public interface CommentService {

    /**
     * 添加评论接口
     * @param comment 评论对象
     */
    void addComment(Comment comment);

    /**
     * 添加回复评论接口
     * @param comment 评论对象
     */
    void replyComment(Comment comment);

    /**
     * 查找评论列表接口
     * @param taskid 任务ID
     * @return 评论列表
     */
    List<Comment> findCommentsByTaskId(Long taskid);

    /**
     * 删除评论接口
     * @param id 评论ID
     * @return 是否删除成功
     */
    boolean deleteCommentById(Long id);

    /**
     * 通过任务ID和父评论ID查找评论列表接口
     * @param taskId 任务ID
     * @param parentCommentId 父评论ID
     * @return 评论列表
     */
    List<Comment> findCommentsByTaskIdAndParentId(Long taskId, Long parentCommentId);

    /**
     * 查找评论置顶状态接口
     * @param commentId 评论ID
     * @return 评论置顶状态
     */
    Integer getIsTopComment(Long commentId);

    /**
     * 置顶评论接口
     * @param commentId 评论ID

     */
    void toTopComment(Long commentId);

    /**
     * 取消置顶评论接口
     * @param commentId 评论ID
     */
    void cancelTopComment(Long commentId);

    /**
     * 查找某评论上下的所有相关评论接口
     * @param commentId 评论ID
     * @return 相关评论列表
     */
    List<Comment> findAllRelatedCommentsById(Integer commentId);
}